Storage apparatuses are used to store data. A storage apparatus is capable of housing a plurality of storage devices, such as Hard Disk Drives (HDDs) and Solid State Drives (SDDs), and provides a large-capacity storage region. A storage apparatus incorporates a storage control apparatus that performs access control for data writes and reads into and from the individual storage devices.
As one example, a storage apparatus that includes disk controllers, which issue commands to disks connected in loops, and a relay apparatus, which relays the issued commands to the disks, has been proposed. In the proposed storage apparatus, the relay apparatus monitors the number of commands issued to the loops, and by controlling the numbers of commands issued by the disk controllers based on the monitoring result, the numbers of commands processed by the relay apparatus are balanced between the disk controllers.
A storage control apparatus with two control units has also been proposed. In the proposed storage control apparatus, a controller that has received an Input/Output (I/O) request from a host uses a path between the controllers to issue an I/O request to an initiator of the other control unit. The initiator that has received the I/O request then accesses the target storage device via a connection path based on the I/O request. By doing so, even when an access from a control unit to a storage device is switched to an alternative path, it is possible to continue the I/O access to a storage device without interrupting the I/O request from the host.
Note that a storage virtualization apparatus that manages the total number of uncompleted commands at each storage port by exchanging information with another storage virtualization apparatus has also been proposed. When the total number of uncompleted commands relating to a storage port to be accessed is within a set number, the proposed storage virtualization apparatus performs an access request responding process which includes issuing a command to the storage port to be accessed without completion being delayed. Conversely, when the total number of uncompleted commands exceeds the set number, the storage virtualization apparatus executes the access request responding process so as to delay completion. By doing so, a “Queue Full” state is prevented from occurring at the storage port.
See, for example: Japanese Laid-open Patent Publication No. 2010-211428; Japanese Laid-open Patent Publication No. 2007-280258; and Japanese Laid-open Patent Publication No. 2014-10476.
It would be conceivable to connect a storage apparatus to another storage apparatus (referred to hereinafter as the “external storage apparatus”) directly or via a relay apparatus. With this configuration, the storage apparatus receives an access request for the external storage apparatus from the host apparatus, performs access to the external storage apparatus in response to the access request, and sends the access result in reply to the host apparatus. By doing so, it is possible to expand the storage region provided to the host apparatus.
With this configuration, it would also be conceivable to provide a plurality of communication paths from the storage apparatus to the external storage apparatus and switch between the communication paths so as to distribute accesses between the plurality of communication paths and speed up data access. However, the storage apparatus is not capable of monitoring the operation states of physical elements provided at the external storage apparatus (such as storage control apparatuses, ports for communicating with the storage apparatus, and the storage devices themselves). This means that it is difficult for the storage apparatus to observe changes in operation states at the external storage apparatus and determine the timing for switching between the communication paths. This presents the issue of how to determine the timing for switching the communication paths at the storage apparatus.